EventBus 3.0 源码分析
EventBus 3.0源码分析简介EvenntBus 是一个Android开发中的用于事件分发的开源库。它的工作核心是发布/订阅者者模式,它可以利用很少的代码来实现多组件间通信。android的组件间通信,我们不由得会想到handler消息机制和广播机制,通过它们也可以进行通信,但是使用它们进行通信,代码量多,组件间容易...
2024-01-10Java 容器类源码详解 Set
前言Set 表示由无重复对象组成的集合,也是集合框架中重要的一种集合类型,直接扩展自 Collection 接口。在一个 Set 中,不能有两个引用指向同一个对象,或两个指向 null 的引用。如果对象 a 和 b 的引用满足条件 a.equals(b),那么这两个对象也不能同时出现在集合中。通常 Set 是不要求元素有序的,但...
2024-01-10Spring源码系列 — Bean生命周期
本文内容纲要:- 前言- BeanFactory概览- Bean的实例化- Bean的装配- Bean的后置处理- Bean的初始化- 总结前言上篇文章中介绍了Spring容器的扩展点,这个是在Bean的创建过程之前执行的逻辑。承接扩展点之后,就是Spring容器的另一个核心:Bean的生命周期过程。这个生命周期过程大致经历了一下的几...
2024-01-10能读 React 源码的人,很吃香!
近 3、4 年来,随着前端技术渐渐趋于稳定,同质化现象已经越来越明显,大家同样是用 React/Vue,工作内容也是高度相似,企业为了在众多求职者中发掘更优秀的人才,就只能不断提高招聘标准。拿 React 举例,你可能觉得自己对 React 已经足够深入,做好了充分的准备。但其实面试官并不关心你会不会...
2024-01-10【Java】Feign - 源码分析
例子这次先不写了。。。直接源码走起。部分设计跟Ribbon一样,这边就不在累述,建议先看Ribbon系列。依然从spring.factories说起。注意到这里有这几个类:FeignAutoConfiguration、FeignRibbonClientAutoConfiguration。启动FeignAutoConfiguration加载FeignContext,这里会赋值FeignClientSpecification的集合,后面说FeignClientSpecification...
2024-01-10分析HashMap 的 JDK 源码
缘由:今天好友拿着下面的代码,问我为什么 Map.Entry 这个接口没有实现 getKey() 和 getValue() 方法,却可以使用,由此,开启了一番查阅 JDK 源码的旅途….Map map = new HashMap(); map.put(1, "张三");map.put(2, "李四");map.put(3, "王五");map.put(4, "赵六");map.put(5, "钱七"); Set set = map.entrySet();for (Object object : set)...
2024-01-10guavaEventBus学习二源码
上篇介绍了guava包中的event bus的使用, 本篇深入源码了解实现细节EventBus了解首先当然要看EventBus类, 类上的注释说了很多, 总结如下:1 EventBus保证在多线程环境下, 不会同时访问订阅者, 除非订阅者标注了AllowConcurrentEvents注解. 如果没有使用这个注解, 订阅者不需要担心消息重入的问题.2 消息接收方法只...
2024-01-10React 源码解读参考,理解原理。
Rubix - ReactJS Powered Admin Template 文档: http://rubix-docs.sketchpixy.com/=============================== 1, React v16-alpha 从virtual dom 到 dom 源码简读: http://www.cnblogs.com/JhoneLee/p/5886759.html...
2024-01-10微信小程序 swiper制作tab切换实现附源码
微信小程序 swiper制作tab切换实现效果图:swiper制作tab切换index.html<view class="swiper-tab"> <view class="swiper-tab-list {{currentTab==0 ? 'on' : ''}}" data-current="0" bindtap="swichNav">Seside1</view> <view class="swiper-tab-list {{currentTab==1 ? 'on' : ''}}" data-curren...
2024-01-10thinkphp3.2.0 setInc方法 源码全面解析
我们先来看一下setInc的官方示例:需要一个字段和一个自增的值(默认为1)我们通过下面这个例子来一步步分析他的底层是怎么实现的:<?phpnamespace Home\Controller;use Think\Controller;class TestController extends Controller { public function test() { $tb_test = M('test'); $tb_test->where(['id'=>1])->setInc('test_nu...
2024-01-10React 源码中的依赖注入方法
一、前言依赖注入(Dependency Injection)这个概念的兴起已经有很长时间了,把这个概念融入到框架中达到出神入化境地的,非Spring莫属。然而在前端领域,似乎很少会提到这个概念,难道前端的代码就不需要解耦吗?前端的代码就没有依赖了?本文将以 React 的源码为例子,看看它是如何使用依赖注入...
2024-01-10从 Masscan, Zmap 源码分析到开发实践
作者:w7ay@知道创宇404实验室 日期:2019年10月12日 Zmap和Masscan都是号称能够快速扫描互联网的扫描器,十一因为无聊,看了下它们的代码实现,发现它们能够快速扫描,原理其实很简单,就是实现两种程序,一个发送程序,一个抓包程序,让发送和接收分隔开从而实现了速度的提升。但是它们识别的...
2024-01-10asp.net生成字母和数字混合图形验证码
验证码技术是网站开发过程中比较重要的技术,可以防止非法人员利用注册机或者登陆工具来攻击我们的网站。下面是效果图:具体实现方法如下:1、主要思路是:引用Using System.Drawing命名空间,利用Graphics的FromImage方法创建一个画布,同时设置画布的宽和高,然后通过Graphics类 的DrawString方法随机生...
2024-01-10ReenTrantLock源码浅析
ReenTrantLock是什么ReenTrantLock是juc包下的一个经典的互斥锁,也是 可重入锁(即当前线程在已经获取改锁后重复执行获取锁操作时不会引起死锁,并且不需要执行获取锁的操作),ReenTrantLock是基于AQS来实现的(PS:注意是基于不是继承,看到网上有的同学会说发现ReentrantLock并没有继承AQS有所疑问),如果有对AQS不了解...
2024-01-10ReentrantLock源码之中断
大家好,我跟踪lock.lockInterruptibly()方法时,对这个方法的实现有疑问finally { if (failed) cancelAcquire(node);}当head -> pre -> current -> next时,代码来到这里else { unparkSuccessor(node...
2024-02-17【CSS】能读 React 源码的人,很吃香!
近 3、4 年来,随着前端技术渐渐趋于稳定,同质化现象已经越来越明显,大家同样是用 React/Vue,工作内容也是高度相似,企业为了在众多求职者中发掘更优秀的人才,就只能不断提高招聘标准。拿 React 举例,你可能觉得自己对 React 已经足够深入,做好了充分的准备。但其实面试官并不关心你会不会...
2024-01-10Sophos UTM 固件反编译 Perl 源码
作者:极光无限维阵漏洞团队负责人—仙果 原文链接:https://mp.weixin.qq.com/s/4TXJrYWnSVeGaM6-p0K8QA一. 题记网络设备或其他IoT设备提取到固件之后进行安全分析和漏洞挖掘工作,对 Sophos UTM 进行安全分析时,发现其具体提供Web 功能的是一个Linux 文件,并没有发现web功能实现的html代码,通过 Burp Suite 抓包We...
2024-01-10【安卓】源码深度解析 Handler 机制及应用
本文以源码分析+实际应用的形式,详细讲解了 Handler 机制的原理,以及在开发中的使用场景和要注意的地方。一、基本原理回顾在 Android 开发中,Handler及相关衍生类的应用经常用到,Android的运行也是建立在这套机制上的,所以了解其中的原理细节,以及其中的坑对于每位开发者来说都是非常有必要...
2024-01-10「源码学习」适用于 Vue3 的 ECharts 包装组件
距离 Vue3 发布已经有近一周的时间,不知道大家源码都学习的怎么样了呢?今天 Gitee 为大家推荐一个新的学习资源,就是下面要介绍的这个同时适用于 Vue2 和 Vue3 的 EChatrts 包装组件,希望能对大家学习 Vue3 有所帮助。项目名称:echarts-for-vue项目作者:范围兄开源许可协议:Apache-2.0项目地址:https://...
2024-01-10pydantic 的源码为什么又有 py 文件,又有 so 文件呢?
pydantic 的源码为什么又有 py 文件,又有 so 文件呢?而且命名都是一样的?难道是一个逻辑,即用 python 写了一边,又用 c 语言写了一边吗?但是如果是这样的话,如何保证逻辑的绝对一致性呢?还是说有什么魔法可以把 py 文件静态编译为 so 文件?回答:Cython这是 setup.py 里编译的地方if not any(arg in sys.argv for arg in [...
2024-02-19Lua 源码欣赏 PDF 文档
Lua 是一门编程语言,Lua 官方网站提供了由语言发明者实现的官方版本。虽然 Lua 有简洁清晰的语言标准,但我们不能将语言的标准制定和实现完全分开看待。事实上、随着官方实现版本的不断更新,Lua 语言标准也在不断变化。本书试图向读者展现 Lua 官方实现的细节。在开始前,先从宏观上来看看,...
2024-01-10Spring 源码分析之 bean 依赖注入原理(注入属性)
本文内容纲要:- 一. Spring容器与依赖注入- 二. 什么时候会触发依赖注入?- 三. 关于依赖注入与属性注入的几点说明- 四. 解析Spring 依赖注入源码部分最近在研究Spring bean 生命周期相关知识点以及源码,所以打算写一篇 Spring bean生命周期相关的文章,但是整理过程中发现涉及的点太多而且又很复...
2024-01-10JAVA NIO 简介 (netty源码死磕1.1)
【基础篇】netty 源码死磕1.1: JAVA NIO简介1. JAVA NIO简介Java 中 New I/O类库 是由 Java 1.4 引进的异步 IO。由于之前老的I/O类库是阻塞I/O,New I/O类库的目标就是要让Java支持非阻塞I/O,所以,更多的人喜欢称之为非阻塞I/O(Non-block I/O)。NIO弥补了原来同步阻塞I/O的不足,它在标准Java代码中提供了高速的、...
2024-01-10IOS Ipa 解包后 看到一些完整的源码
闲来无事解压了一个ipa的包 然后 竟然里面有个文件夹 里面是完整的源码 。这种情况是怎么导致的。回答:应该是资源里面就有源码,要不然不可能会有。在哪里看到源码呢?我这边ipa包改成zip之后没看到源码。回答:你8.3以上不越狱,连资源都看不到了……回答:.h .m 文件应该不会被打到程序...
2024-01-10